package com.sys.ai.service;

import com.sys.ai.domain.AiEmbeddingDb;
import com.sys.ai.domain.AiKnowledge;
import com.sys.ai.domain.AiKnowledgeFragmentation;
import com.sys.ai.vo.KnowledgeFragmentationVO;

import java.util.List;

public interface IDbOptionService {

    void createAiKnowledge(String schemeName, AiEmbeddingDb aiEmbeddingDb);

    /**
     * 创建储知识库class 并存储Q&A数据
     *
     * @param aiKnowledgeFragmentationList 目标数据
     * @param schemeName                   知识库classname
     */
    void saveAiKnowledge(List<AiKnowledgeFragmentation> aiKnowledgeFragmentationList, String schemeName, AiEmbeddingDb aiEmbeddingDb);

    /**
     * @param questionEmbedding 问题查询向量
     * @param knowledgeIds      知识库id
     * @return
     */
    List<KnowledgeFragmentationVO> query(Float[] questionEmbedding, List<String> knowledgeIds);

    /**
     * @param questionEmbedding 问题查询向量
     * @param aiKnowledge       知识库对象
     * @param aiEmbeddingDb     默认使用当前知识库的向量数据库
     * @return
     */
    List<KnowledgeFragmentationVO> query(Float[] questionEmbedding, AiKnowledge aiKnowledge, AiEmbeddingDb aiEmbeddingDb);
}
